Technical Field of the Invention
This invention relates generally to computing and more particularly to storage of information.
Description of Related Art
Computing systems are known to communicate, process, and store data. Such computing systems range from wireless smart phones to data centers that support millions of web searches, stock trades, or on-line purchases every day. Compute processing is also known to manipulate data from one form into another. For instance, raw picture data from an image sensor may be compressed, or manipulated, in accordance with a picture compression standard to produce a standardized compressed picture that can be saved or shared with others. Computer processing capability continues to advance as processing speed advances and as software applications that perform the manipulation become more sophisticated.
With the advances in computing processing speed and communication speed, computers manipulate real time media from voice to streaming high definition video. Purpose-built communications devices, like the phone, are being replaced by more general-purpose information appliances that converge many features, uses, and/or functions. For example, smart phones can support telephony communications but they are also capable of text messaging, and accessing the internet to perform functions including email, web browsing, remote applications access, and media functions. Media functions include processing telephony voice, image transfer, music files, video files, real time video streaming and more.
Each type of computing system is constructed, and hence operates, in accordance with one or more communication, processing, and storage standards. With such standards, and with advances in technology, more and more of the global information content is being converted into electronic formats. For example, more digital cameras are now being sold than film cameras, thus producing more digital picture content. High growth rates exist for web based programming that until recently was all broadcast by just a few over-the-air television stations and cable television providers. Digital content standards, such as those used in pictures, papers, books, video entertainment, and home video, all enable this global transformation of information to a digital format. Electronic content pervasiveness is producing increasing demands on the storage function of computing systems.
A typical computer storage function includes one or more memory devices to match the needs of the various operational aspects of the processing and communication functions. For example, a memory device may include solid-state NAND flash, random access memory (RAM), read only memory (ROM), or a mechanical hard disk drive. Each type of memory device has a particular performance range and normalized cost. The computing system architecture optimizes the use of one or more types of memory devices to achieve the desired functional and performance goals of the computing system. Generally, the immediacy of access dictates what type of memory device is used. For example, RAM memory locations can be accessed in any random order with a constant response time. By contrast, memory device technologies that require physical movement such as magnetic discs, tapes, and optical discs, have a variable responses time by location as the physical movement to position to a specific location can take longer than the data transfer itself.
Each type of computer storage system is constructed, and hence operates, in accordance with one or more storage standards. For instance, computer storage systems may operate in accordance with one or more standards including, but not limited to network file system (NFS), flash file system (FFS), disk file system (DFS), small computer system interface (SCSI), internet small computer system interface (iSCSI), file transfer protocol (FTP), and web-based distributed authoring and versioning (WebDAV). An operating systems (OS) and storage standard may specify the data storage format and interface between the processing subsystem and the memory devices. The interface may specify a data structure such as directories and files. Typically, a memory controller provides the interface function between the processing units/function and memory devices/storage. As new storage systems are developed, the memory controller functional requirements may change to adapt to new standards.
Memory devices may fail, especially those that utilize technologies that require physical movement like a disc drive. For example, it is not uncommon for a disc drive to suffer from bit level corruption on a regular basis, or complete drive failure after an average of three years of use. One common solution is to utilize more costly disc drives that have higher quality internal components. Another solution is to utilize multiple levels of redundant disc drives to abate these issues by replicating the data into two or more copies. One such redundant drive approach is called redundant array of independent discs (RAID). Multiple physical discs in a single enclosure or box comprise an array where parity data is added to the original data before storing the data across the array. The parity is calculated such that the failure of one or more discs will not result in the loss of the original data. The original data can be reconstructed from the other functioning discs. RAID 5 uses three or more discs to protect data from the failure of any one disc. The parity and redundancy overhead needed to fully recover data in the event of a single disc failure reduces the capacity of what the three independent discs can store by one third (n−1=3−2=2 discs of capacity using 3 discs). RAID 6 can recover from a loss of two discs and requires a minimum of four discs with an efficiency of n−2. Typical RAID systems utilize a RAID control to encode and decode the data across the array.
Drawbacks of the RAID approach include effectiveness, efficiency, and security. As more discs are added, the probability of one or two discs failing rises and is not negligible, especially if less-costly discs are used. When one disc fails, it should be immediately replaced and the data reconstructed before a second drive fails. To provide high reliability over a long time period, and if the RAID array is part of a national level computing system with occasional site outages, it is also common to mirror RAID arrays at different physical locations creating fully redundant copies of the same data at several different sites. Unauthorized file access becomes a more acute problem when whole copies of the same file are replicated, either on just one storage system site or at two or more sites. In terms of cost and effectiveness, the efficiency of dedicating 1 to 2 discs per array for the RAID overhead in order to recover data in the event of a disc failure is an issue.
Therefore, a need exists to provide a data storage solution that provides more effective timeless continuity of data, minimizes adverse affects of multiple memory elements failures, provides improved security, can be adapted to a wide variety of storage system standards and/or is compatible with commercial computing and communications systems.